package com.hy.mvc.biz.service.common.support;

import com.hy.mvc.client.enumerate.AppEnum;
import lombok.Data;

/**
 * <pre>
 *    author  : Booker
 *    time    : 2017/12/14 19:09
 *    desc    : init the user of context
 *    version : v1.0
 * </pre>
 */
@Data
public class UserContext {

    /**
     * 本地线程localThread
     */
    private static ThreadLocal<UserContext> currentUserContext = new ThreadLocal<UserContext>() {
        @Override
        protected UserContext initialValue() {
            return new UserContext();
        }
    };
    /**
     * 用户名
     */
    private String userName;
    /**
     * 用回id
     */
    private Long userId;
    /**
     * 简化名字
     */
    private String shortName;
    /**
     * 验证码
     */
    private String vCode;
    /**
     * 是否是管理员
     */
    private boolean isAdmin;
    /**
     * app Name
     */
    private String appName = AppEnum.mvcweb.getName();

    /**
     * 获取当前用户登录信息
     *
     * @return
     */
    public static UserContext current() {
        return currentUserContext.get();
    }

    /**
     * 清除用户登录信息
     */
    public static void clearUserContext() {
        currentUserContext.remove();
    }
}
